Scroll to navigation

PAPI_read(3) PAPI PAPI_read(3)

NAME

PAPI_read - read hardware counters from an event set

PAPI_accum - accumulate and reset counters in an event set

SYNOPSIS

C Interface

#include <papi.h>
int PAPI_read(int EventSet, long_long *values);
int PAPI_accum(int EventSet, long_long *values);

Fortran Interface

#include fpapi.h
PAPIF_read(C_INT EventSet, C_LONG_LONG(*) values, C_INT check)
PAPIF_accum(C_INT EventSet, C_LONG_LONG(*) values, C_INT check)

DESCRIPTION

These calls assume an initialized PAPI library and a properly added event set.

PAPI_read() copies the counters of the indicated event set into the array values. The counters continue counting after the read.

PAPI_accum() adds the counters of the indicated event set into the array values. The counters are zeroed and continue counting after the operation.

Note the differences between PAPI_read() and PAPI_accum(), specifically that PAPI_accum() resets the values array to zero.

ARGUMENTS

EventSet -- an integer handle for a PAPI Event Set as created by PAPI_create_eventset(3)

*values -- an array to hold the counter values of the counting events

RETURN VALUES

On success, these functions return PAPI_OK.
On error, a non-zero error code is returned.

ERRORS

One or more of the arguments is invalid.
A system or C library call failed inside PAPI, see the errno variable.
The event set specified does not exist.

EXAMPLES


do_100events();
if (PAPI_read(EventSet, values) != PAPI_OK)
handle_error(1);
/* values[0] now equals 100 */
do_100events();
if (PAPI_accum(EventSet, values) != PAPI_OK)
handle_error(1);
/* values[0] now equals 200 */
values[0] = -100;
do_100events();
if (PAPI_accum(EventSet, values) != PAPI_OK)
handle_error(1);
/* values[0] now equals 0 */

BUGS

These functions have no known bugs.

SEE ALSO

PAPI_set_opt(3), PAPI_reset(3), PAPI_start(3), PAPI(3), PAPIF(3)

September, 2004 PAPI Programmer's Reference